package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"
)

// 定义富文本消息结构体
type PostMessage struct {
	MsgType string `json:"msg_type"`
	Content struct {
		Post struct {
			ZhCn struct {
				Title   string `json:"title"`
				Content [][]struct {
					Tag  string `json:"tag"`
					Text string `json:"text"`
				} `json:"content"`
			} `json:"zh_cn"`
		} `json:"post"`
	} `json:"content"`
}

// 发送消息到飞书机器人
func sendMessageToFeishuBot(webhookURL string, title string, content []string) error {
	// 创建消息结构体实例
	msg := PostMessage{
		MsgType: "post",
	}
	msg.Content.Post.ZhCn.Title = title

	// 构建富文本内容
	for _, line := range content {
		item := []struct {
			Tag  string `json:"tag"`
			Text string `json:"text"`
		}{
			{
				Tag:  "text",
				Text: line,
			},
		}
		msg.Content.Post.ZhCn.Content = append(msg.Content.Post.ZhCn.Content, item)
	}

	// 将消息结构体转换为 JSON 字节切片
	jsonData, err := json.Marshal(msg)
	if err != nil {
		return fmt.Errorf("JSON 编码错误: %w", err)
	}

	// 创建 HTTP POST 请求
	req, err := http.NewRequest("POST", webhookURL, bytes.NewBuffer(jsonData))
	if err != nil {
		return fmt.Errorf("创建请求错误: %w", err)
	}

	// 设置请求头
	req.Header.Set("Content-Type", "application/json")

	// 发送请求
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		return fmt.Errorf("发送请求错误: %w", err)
	}
	defer resp.Body.Close()

	// 读取响应内容
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		return fmt.Errorf("读取响应内容错误: %w", err)
	}

	// 检查响应状态码
	if resp.StatusCode != http.StatusOK {
		return fmt.Errorf("请求失败，状态码: %d，响应内容: %s", resp.StatusCode, string(body))
	}

	return nil
}

func main() {
	// 替换为你实际的 Webhook 地址
	webhookURL := "https://open.feishu.cn/open-apis/bot/v2/hook/8a1aa404-a5f2-43b3-b3f2-e70916a70814"
	title := "【企业资产月度统计通知】"
	content := []string{
		" 笔记本电脑  【12】 台",
		" 显示器  【8】 台",
		" 投影仪  【1】 台",
		"                    【 - 来自：软通资产管理系统】",
	}

	err := sendMessageToFeishuBot(webhookURL, title, content)
	if err != nil {
		fmt.Println("消息发送失败:", err)
	} else {
		fmt.Println("消息发送成功")
	}
}

/***
机器人1：
请保管好此 Webhook 地址。 请保管好该 Webhook 地址，不要公布在 GitHub、博客等可公开查阅的网站上，以防止地址泄露后被恶意调用发送垃圾信息
https://open.feishu.cn/open-apis/bot/v2/hook/07beb535-76ea-48e6-a5da-d7b3a21675c0

机器人2：
https://open.feishu.cn/open-apis/bot/v2/hook/d011cd01-3375-482b-acc3-384d66d6af76

机器人3：
https://open.feishu.cn/open-apis/bot/v2/hook/8a1aa404-a5f2-43b3-b3f2-e70916a70814

多维表：
https: //isoftstone.feishu.cn/base/C3libxfy7aRtQ2s571Rcn0NLnTg?from=from_copylink

**/
